﻿#pragma once

#include <QWidget>
#include "ui_ZPageWidget.h"

class ZPageWidget : public QWidget
{
	Q_OBJECT

public:
	ZPageWidget(QWidget *parent = Q_NULLPTR);
	~ZPageWidget();
	/**
	* @brief setPageCount 设置总页数
	* @param count 总页数
	*/
	void setPageCount(int count);
	int pageCount() const { return m_pageCount; }

	/**
	* @brief setCurrentPage 设置当前页
	* @param page 当前页码
	*/
	void setCurrentPage(int page);
	int currentPage() const { return m_currentPage; }

	/**
	* @brief setDataCount 设置数据总量
	* @param cnt 数据总量
	*/
	void setDataCount(int cnt);
	int dataCount() const { return m_dataCount; }

	/**
	* @brief setPerpageDataCount 设置每页数据量
	* @param cnt 每页数据量
	*/
	void setPerpageDataCount(int cnt);
	int perpageDataCount() const { return m_perpageDataCount; }

signals:
	/**
	* @brief sign_pageChanged 页码变化信号
	* @param page 当前页码
	*/
	void sign_pageChanged(int page);

private:
	/**
	* @brief pageChanged 切换页码
	*/
	void pageChanged();

	private slots:
	/**
	* @brief slot_previousPageBtnClicked 前一页按钮槽函数
	*/
	void slot_previousPageBtnClicked();

	/**
	* @brief slot_nextPageBtnClicked 后一页按钮槽函数
	*/
	void slot_nextPageBtnClicked();
	/**
	* @brief slot_firstPageBtnClicked 首页按钮槽函数
	*/
	void slot_firstPageBtnClicked();
	/**
	* @brief slot_lastPageBtnClicked 尾页按钮槽函数
	*/
	void slot_lastPageBtnClicked();

	/**
	* @brief slot_skipPageBtnClicked 跳转页码按钮槽函数
	*/
	void slot_skipPageBtnClicked();

private:
	Ui::ZPageWidget ui;

	int m_pageCount;
	int m_currentPage;
	int m_dataCount;
	int m_perpageDataCount;
};
